gusucode.com > 阵列信号处理书的源码 > MATALB 程序/15 四元数MUSIC的MATLAB程序/IsoMatrix.m

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%**程序名字: 四元数矩阵的同构复矩阵
%**作者:     汪飞
%**日期:     2005-1-13
%**修改人:
%**日期:
%**描述:     Isomatrix of Quaternion Matrix,which was assigned as 
%             (0,0) (0,1) ...(0,W-1);(1,0) (1,1) ...(1,W-1);...;(H-1,0) 
%             (H-1,1) ...(0,W-1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function Output = IsoMatrix(QM)
%QM = [1,2,2,3;2,1,3,3;2,1,3,2];

[a,b] = size(QM);

u = 0;
S_C_Q = zeros(2*a, b/2);
for p = 1:a
   m = 2*u+1;
   u = u+1;
   v = 0;
   for j = 1:4:b
      % 得到每一个四元数对应的同构复数
      C_Q = [QM(p,j)+QM(p,j+1)*1i,QM(p,j+2)+QM(p,j+3)*1i;
         -QM(p,j+2)+QM(p,j+3)*1i,QM(p,j)-QM(p,j+1)*1i];
      n = 2*v+1;
      v = v+1;
      % 将每一个四元数对应的四个复数放在对应的四元数矩阵的位置上
      S_C_Q(m,n:n+1)= C_Q(1,:);
      S_C_Q(m+1,n:n+1) = C_Q(2,:);
   end
end

Output = S_C_Q;